import HTTP from '@/libs/http'

class OpinionApi extends HTTP {
  /**
   * @description: 问题反馈
   * @author lsr
   * @date 2021.04.12
   * @param {String} opinionType 类型
   * @param {String} opinion 反馈内容
   */
  save({ opinionType, opinion }) {
    return this.request({
      method: 'POST',
      url: '/smart/smart-app/grid_log/save_opinion',
      data: {
        opinionType,
        opinion
      }
    })
  }
}

class LogApi extends HTTP {
  /**
   * @description: 列表
   * @author lsr
   * @date 2021.04.13
   * @param {String} type 1：本周  2：30天  3：时间范围搜索
   * @param {String} startTime 开始时间
   * @param {String} endTime 结束时间
   */
  list({ type, startTime, endTime }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/grid_log/list',
      params: {
        type,
        startTime,
        endTime
      }
    })
  }

  /**
   * @description: 保存
   * @author lsr
   * @date 2021.04.13
   * @param {String} logCode 日志编码
   * @param {String} logDate 日志日期
   * @param {String} reportEventNum 事件上报数
   * @param {String} finishEventNum 办结事件数
   * @param {String} biApproveNum 基础信息审核数
   * @param {String} biSubmitNum 基础信息采集数
   * @param {String} logContent 日志内容
   */
  save({ logCode, logDate, reportEventNum, finishEventNum, biApproveNum, biSubmitNum, logContent }) {
    return this.request({
      method: 'PUT',
      url: '/smart/smart-app/grid_log/update',
      data: {
        logCode,
        logDate,
        reportEventNum,
        finishEventNum,
        biApproveNum,
        biSubmitNum,
        logContent
      }
    })
  }

  /**
   * @description: 详情
   * @author lsr
   * @date 2021.04.13
   * @param {String} logCode 日志编码
   */
  detail({ logCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/grid_log/detail',
      params: {
        logCode
      }
    })
  }

  /**
   * @description: 搜索事件标题
   * @author lsr
   * @date 2021.04.14
   * @param {String} eventName 搜索关键字
   */
  event({ eventName }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/grid_log/event',
      params: {
        eventName
      }
    })
  }
}
class Appraisal extends HTTP {
  /**
   * @description:绩效考核的相关接口
   * @author llx
   * @date 2021.05.13
   */

  /**
   * @description: 点击最新绩效考核要求
   * @author llx
   * @date 2021.05.13
   * @param {String} type 1：当年和默认六个月  2：时间范围搜索
   * @param {String} startTime 开始时间
   * @param {String} endTime 结束时间
   */
  assessment({ type, startTime, endTime }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/assessment/assessment',
      params: {
        type,
        startTime,
        endTime
      }
    })
  }

  /**
   * @description: 列表
   * @author llx
   * @date 2021.05.13
   * @param {String} type 1 网格员
   * @param {String} startTime 开始时间
   * @param {String} endTime 结束时间
   */
  list({ type, startTime, endTime }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/assessment/list',
      params: {
        type,
        startTime,
        endTime
      }
    })
  }

  /**
   * @description: 查看详情
   * @author llx
   * @date 2021.05.13
   * @param {String} assessmentCode 考核编码
   * @param {String} assessmentTime 关联时间
   */
  detail({ assessmentCode, assessmentTime }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/assessment/detail',
      params: {
        assessmentCode,
        assessmentTime
      }
    })
  }
}
class TaskApi extends HTTP {
  /**
   * @description: 列表
   * @author cx
   * @date 2021.11.22
   * @param {String} taskOrPlan 1：领导任务  2：工作计划
   * @param {String} startDeadline 开始时间
   * @param {String} endDeadline 结束时间
   * @param {String} taskPriority 优先级
   * @param {String} taskStatus 状态
   * @param {Int} recordSize 开始下标（第一条数据的下标为0）
   * @param {Int} pageSize 每页显示条数
   * @param {String} addUser 创建人
   */
  list({ taskOrPlan, startDeadline, endDeadline, taskPriority, taskStatus, recordSize, pageSize, addUser }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/taskplan/list',
      params: {
        taskOrPlan,
        startDeadline,
        endDeadline,
        taskPriority,
        taskStatus,
        recordSize,
        pageSize,
        addUser
      }
    })
  }

  /**
   * @description: 详情
   * @author cx
   * @date 2021.11.22
   * @param {String} taskCode 日志编码
   */
  detail({ taskCode }) {
    return this.request({
      method: 'GET',
      url: '/smart/smart-app/taskplan/detail',
      params: {
        taskCode
      }
    })
  }

  /**
   * @description: 修改
   * @author cx
   * @date 2021.11.22
   * @param {String} button 3开始，4完成
   * @param {String} taskCode 任务编码
   * @param {String} disposalResults 处置结果
   * @param {String} disposalPicture 图片
   */
  update({ button, taskCode, disposalResults, disposalPicture }) {
    return this.request({
      method: 'PUT',
      url: '/smart/smart-app/taskplan/updateStatus',
      data: {
        button,
        taskCode,
        disposalResults,
        disposalPicture
      }
    })
  }

  /**
   * @description: 保存
   * @author cx
   * @date 2021.11.22
   * @param {String} taskOrPlan 1 领导任务 2 工作计划
   * @param {String} taskName 任务名称
   * @param {String} taskDescribe 任务描述
   * @param {String} taskPicture 图片
   * @param {String} deadline 截止时间
   * @param {String} taskPriority 优先级
   * @param {String} taskStatus 状态
   * @param {String} taskReceiver 任务接收者
   */
  taskSave({ taskOrPlan, taskName, taskDescribe, taskPicture, deadline, taskPriority, taskStatus, taskReceiver }) {
    return this.request({
      method: 'POST',
      url: '/smart/smart-app/taskplan/save',
      data: {
        taskOrPlan,
        taskName,
        taskDescribe,
        taskPicture,
        deadline,
        taskPriority,
        taskStatus,
        taskReceiver
      }
    })
  }

  /**
   * @description: 修改
   * @author cx
   * @date 2021.11.22
   * @param {String} taskCode 领导编码
   * @param {String} taskName 任务名称
   * @param {String} taskDescribe 任务描述
   * @param {String} taskPicture 图片
   * @param {String} deadline 截止时间
   * @param {String} taskPriority 优先级
   */
  taskUpdate({ taskCode, taskName, taskDescribe, taskPicture, deadline, taskPriority }) {
    return this.request({
      method: 'PUT',
      url: '/smart/smart-app/taskplan/update',
      data: {
        taskCode,
        taskName,
        taskDescribe,
        taskPicture,
        deadline,
        taskPriority
      }
    })
  }
}
class RoutineClass {
  constructor() {
    this.Opinion = new OpinionApi()
    this.Log = new LogApi()
    this.Appraisal = new Appraisal()
    this.Task = new TaskApi()
  }
}

const Routine = new RoutineClass()

export default Routine
